package org.example.strategy;

import java.util.ArrayList;
import java.util.List;

/**
 * @description: 用于短链码的后缀，这个后缀对应着表的后缀
 * @author: 谢超
 * @date: 2023/8/17 10:52
 */
public class ShardingTableConfig {

    /**
     * 存储数据库位置编号
     */
    private static final List<String> tableSuffixList = new ArrayList<>();

    // private static Random random = new Random();

    // 配置启用那些库的前缀
    static {
        tableSuffixList.add("0");
        tableSuffixList.add("a");
    }

    /**
     * 获取随机的表后缀编号(原本是通过随机数完成，改为按照hashcode取模的方式获取，这样获取的编号稳定，同一个URL生成的短链就不会出现随机行为)
     * @return
     */
    public static String getRandomTableSuffix(String code) {
        // int index = random.nextInt(tableSuffixList.size());
        int hashCode = code.hashCode();
        int index = Math.abs(hashCode) % tableSuffixList.size();
        return tableSuffixList.get(index);
    }
}
